Physical unclonable functions (PUFs) have proven to be advantageous alternatives for many forms of secure identification, including the storing of keys, identifiers and the like in secure memories.
A physical unclonable function exploits manufacturing variations to derive a digital identifier. The digital identifier is thus tied to a physical medium. Because the physical unclonable function depends on random process variation, it is easy to create a PUF but it is very hard, if not downright impossible, to create a PUF which would give rise to a particular pre-determined identifier. The manufacturing variations lead to different physical characteristics of the memory element. For example, the physical characteristics may include: doping concentrations, oxide thickness, channel lengths, structural width (e.g. of a metal layer), parasitic (e.g. resistance, capacitance). When a digital circuit design is manufactured multiple times, these physical characteristics will vary slightly and together they will cause the behavior of an IC element, e.g., a memory element, to behave differently in some situations. For example, the start-up behavior is determined by manufacturing variations in the physical characteristics.
This property of PUFs makes them suitable for a range of applications. For example, PUFs may be used to combat counterfeiting. Although, it may be possible to fraudulently copy a particular device or other manufactured item, it would not be possible to duplicate a PUF which could be embedded therein with sufficient precision so that it would give rise to the same digital identifier as the original. As a further example, PUFs are used to create cryptographic keys. Using a PUF the need for secure memory to store a key is circumvented. A PUF furthermore provides natural protection against illegal attempts to obtain the cryptographic key through reverse engineering, since damage which could be inflicted to the PUF during the attempt would change the digital identifier. Preferably, the digital identifier is unique for the electronic device wherein the physical unclonable function is embedded.
PUFs have been advantageously applied in electronic devices. Even tiny manufacturing variations which are unavoidable during manufacture of an IC lead to different properties of the IC. These different properties are normally suppressed, in an effort to obtain a batch of ICs that operate in the same manner. However, to create a PUF the differences among individual ICs in a batch of ICs are exploited.
For example, it has been observed that the startup behavior of some memory elements, demonstrate PUF like behavior. When such memory is powered-up, it tends to contain content, i.e., comprise a sequence of data values, which depends on the at least partially random physical characteristics of the components, e.g., gates or transistors, which make up the memory, e.g., their physical arrangement relative to each other. If the memory is powered-up multiple times, it would contain, up to a large percentage, the same content. Unfortunately, since the PUF behavior depends on small fluctuations, a certain error percentage is unavoidable. An error correction procedure, using so-called helper data, can be used to correct for these fluctuations, and make sure an identical digital identifier is derived, each time the PUF is used.
PUFs are also applied in cryptographic security solutions wherein secret key(s) need to be stored somewhere in a system. For example, a secure key management solution may be based on PUF technology; in particular on SRAM-PUFs. This technology is able to extract identifiers from the uniqueness that is inherent to every piece of silicon. The secret keys may be reconstructed without having to store those keys. PUF-based keys are bound to a device in such a way that it is hard to clone, copy or otherwise extract them from the device. SRAM memory is however a precious commodity. Even if a sufficient amount of SRAM memory is available, some applications may not want to reserve the SRAM only for cryptographic key generation or storage. There is a need to reduce the amount of memory needed for physical unclonable functions.